package com.menqui.localizame.webservice;

import java.net.URI;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import android.util.Log;

import com.menqui.localizame.constantes.ConstantesConfiguracion;
import com.menqui.localizame.estructuras.DatosRuta;
import com.menqui.localizame.estructuras.DatosUsuario;

public class LocalizameWebService {

	private static String URL_SERVIDOR = "http://empty-lightning-7176.herokuapp.com/ws/";
	private static String LOG_TAG = LocalizameWebService.class.toString();

	public static List<DatosUsuario> listarUsuarios() {

		List<DatosUsuario> resultado = new ArrayList<DatosUsuario>();
		HttpGet request = new HttpGet();
		try {
			DefaultHttpClient httpClient = new DefaultHttpClient();
			String peticion = URL_SERVIDOR + "listAmigos?datos=" + ConstantesConfiguracion.USERNAME;
			request.setURI(new URI(peticion));

			HttpResponse response = httpClient.execute(request);
			String responseString = EntityUtils.toString(response.getEntity());
			httpClient.getConnectionManager().shutdown();

			if (responseString.length() > 0){
				String[] usuarios = responseString.split(";");
				for (String iter : usuarios){
					String[] datosUsuario = iter.split(",");
					resultado.add(new DatosUsuario(Integer.valueOf(datosUsuario[0]), datosUsuario[1]));
				}
			}

		} catch (Exception e) {
			Log.e(LOG_TAG, "Error Comunicacion ", e);
		}

		return resultado;
	}

	public static List<DatosRuta> listarRutas(String string) {

		List<DatosRuta> resultado = new ArrayList<DatosRuta>();
		HttpGet request = new HttpGet();
		try {
			DefaultHttpClient httpClient = new DefaultHttpClient();
			String peticion = URL_SERVIDOR + "listRutas?datos=" + ConstantesConfiguracion.USERNAME;
			request.setURI(new URI(peticion));

			HttpResponse response = httpClient.execute(request);
			String responseString = EntityUtils.toString(response.getEntity());
			httpClient.getConnectionManager().shutdown();

			if (responseString.length() > 0){
				String[] rutas = responseString.split(";");
				for (String iter : rutas){
					String[] datosUsuario = iter.split(",");
					DatosRuta ruta = new DatosRuta();
					ruta.setIdRuta(Long.valueOf(datosUsuario[0]));
					ruta.setNombreRuta(datosUsuario[1]);
					resultado.add(ruta);
				}
			}

		} catch (Exception e) {
			Log.e(LOG_TAG, "Error Comunicacion ", e);
		}

		return resultado;
	}

	public static void addAmigoToRuta(String idAmigo, String idRuta) {

		HttpGet request = new HttpGet();
		try {
			DefaultHttpClient httpClient = new DefaultHttpClient();
			String peticion = URL_SERVIDOR + "addAmigoToRuta?datos=" + idAmigo + ";" + idRuta;
			request.setURI(new URI(peticion));

			httpClient.execute(request);
			httpClient.getConnectionManager().shutdown();
		} catch (Exception e) {
			Log.e(LOG_TAG, "Error Comunicacion ", e);
		}
	}
}
